[Script Pascal] Verificando quantos Caracteres por Segundo tem a legenda
Publicado por rafael farias novaes 26/01/2009
[ Hits: 7.168 ]
Homepage: http://www.vivaolinux.com.br/perfil/verPerfil.php?login=bfmano
Seguindo a linha de garimpagem do Pix, estou pesquisando na internet alguns scripts pascal que facilitam nossa vida.
Este gera um relatório dizendo se sua legenda está nos "padrões" de 25 caracteres exibidos em 1 segundo (tempo-limite que a maioria das pessoas leva pra ler a legenda). OBS: o padrão oficial para dvd's comerciais e filmes de cinema é de 13 a 18 cps em média.
Salve este código com o nome ShowCPS.pas na pasta PascalScripts do Subtitle Workshop
// Made by Buzcatcher program ShowCPS; // --------------------------------------------- const cpsreport = 'C:\cps_report.txt'; CRLF = ''#13''#10; Rsep = ' | '; var i, n, p : Integer; duration, sublength, cps : Integer; subtxt, report : String; Ms : TmemoryStream; begin Ms := TmemoryStream.Create; n := GetSubtitleCount-1; for i := 0 to n do begin subtxt := GetSubtitleText(i); sublength := length(subtxt); p := pos(''#13''#10, subtxt); if (p>0) then sublength := sublength - 2; duration := GetSubtitleFinalTime(i) - GetSubtitleInitialTime(i); cps := round((sublength * 1000)/ duration); report := IntToStr(i+1) + Rsep + IntToStr(sublength) + ' Characters' + Rsep + IntToStr(duration) + ' duration(ms)' + Rsep + '==> ' + IntToStr(cps) + ' Char/sec.' if (cps > 25) then report := report + Rsep + 'LEGENDA MUITO RAPIDA' report := report + CRLF Ms.Write(report, length(report)); try Ms.SaveToFile(cpsreport); except MsgBox('Couldn''t write to file!', '&Ok', '', '', $20); end; end; Ms.Free; MsgBox('Report saved in C:\cps_report.txt', '&Ok', '', '', $20); end.
Funções de Manipulação de Arquivos Pascal
Visualizador de imagens feito no Lazarus
Visualizador De Imagem feito no Lazarus (Delphi 7 para Linux)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como Definir o Painel Principal em Múltiplos Monitores no Linux Mint
Minecraft Launcher para Arch Linux
Instalar o Apache, MySQL e PHP no Oracle Linux 8
Resolvendo o erro "libQt6Widgets.so.6: cannot open shared object file" no Linux